/**
                                        NativeEnhancer Extension Shader v1.14
-------------------------------------------------------------------------------------------------------------------------
                                              UHQ FXAA with other effects
------------------------------------------------------------------------------------------------------------------------
                                        Assembled by Wilham Anggowo P. (WLHM15)
                                            Original technique is made by :
------------------------------------------------------------------------------------------------------------------------
                                                    Thimoty Lottes
                                                        Haasn
------------------------------------------------------------------------------------------------------------------------
                                            Copyright © 2014 - 2016 WLHM15
                                            Copyright © 2016 Thimoty Lottes
                                        Copyright © 2007 - 2016 Boris Vorontsov
------------------------------------------------------------------------------------------------------------------------
-------------------------------------(¿) SORRY, YOU CAN'T RIP MY CODES AGAIN (?) ---------------------------------------
------------------------------------------------------------------------------------------------------------------------
/*																														*/ #define wlhm float
/*																														*/ #define wlhm2 float2
/*                                                                          . ...																*/ #define wlhm3 float3
/*									.''.' .    '.															*/ #define wlhm4 float4
/*						                    . '' ".'.:I:.'..  '.														*/ #define tekstur2D texture2D
/*						                  .'.:.:..,,:II:'.'.'.. '.														*/ #define sampel2D	sampler2D
/*						                .':.'.:.:I:.:II:'.'.'.'.. '.													*/ #define tekCrimson texColor
/*						              .'.'.'.'::.:.:.:I:'.'.'.'. .  '													*/ #define tekLograth texNoise
/*						             ..'.'.'.:.:I::.:II:.'..'.'..    .													*/ #define tekNuzlak texDepth
/*						            ..'.'':.:.::.:.::II::.'.'.'.'..   .													*/
/*						           ..'.'.'.:.::. .:::II:..'.'.'.'.'.   .												*/
/*						          .':.''.':'.'.'.:.:I:'.'.'.'.'.. '..  ..												*/ #define Win32XFDRansomWare VS_OUTPUT_POST
/*						          ':. '.':'. ..:.::.::.:.'..'  ':.'.'.. ..												*/ #define Win64LKCSpyWare VS_INPUT_POST
/*						         .:.:.':'.   '.:':I:.:.. .'.'.  ': .'.. . ..											*/
/*						         '..:.:'.   .:.II:.:..   . .:.'. '.. '. .  ..											*/ #define Win32HTKWorm IN
/*						        .. :.:.'.  .:.:I:.:. .  . ..:..:. :..':. .  '.											*/ #define Win64NRJTrojan OUT
/*						       .:. :.:.   .:.:I:.:. .    . ..:I::. :: ::  .. ..											*/
/*						       .. :'.'.:. .:.:I:'.        ..:.:I:. :: ::.   . '.										*/ #define VisheraAVDefense COLOR
/*						       '..:. .:.. .:II:'         ,,;IIIH.  ::. ':.      .										*/ #define TraceNocXZ TEXCOORD0
/*						      .:.::'.:::..:.AII;,      .::",,  :I .::. ':.       .										*/ #define KillNPCDovaz POSITION
/*						      :..:'.:II:.:I:  ,,;'   ' .;:FBT"X:: ..:.. ':.    . .										*/
/*						     .. :':III:. :.:A"PBF;.  . .P,IP;;":: :I:..'::. .    ..										*/ #define NativeTribe technique
/*						     . .:.:II: A.'.';,PP:" .  . ..'..' .: :.::. ':...  . ..										*/
/*						     . .: .:IIIH:.   ' '.' .  ... .    .:. :.:.. :...    .'										*/
/*						     . .I.::I:IIA.        ..   ...    ..::.'.'.'.: ..  . .										*/ #include "NativeEnhancer.ini"
/*						      .:II.'.':IA:.      ..    ..:.  . .:.: .''.'  ..  . .										*/
/*						     ..::I:,'.'::A:.  . .:'-, .-.:..  .:.::AA.. ..:.' .. .										*/
/*						      ':II:I:.  ':A:. ..:'   ''.. . : ..:::AHI: ..:..'.'.										*/
/*						     .':III.::.   'II:.:.,,;;;:::::". .:::AHV:: .::'' ..										*/ #define MudLock (
/*						     ..":IIHI::. .  "I:..":;,,,,;;". . .:AII:: :.:'  . .										*/ #define HivrzGed )
/*						     . . IIHHI:..'.'.'V::. ":;;;"   ...:AIIV:'.:.'  .. .										*/
/*						      . . :IIHI:. .:.:.V:.   ' ' . ...:HI:' .:: :. .  ..										*/
/*						      . .  ':IHII:: ::.IA..      .. .A .,,:::' .:.    .											*/
/*						      :.  ...'I:I:.: .,AHHA, . .'..AHIV::' . .  :     ..										*/
/*						      :. '.::::II:.I:.HIHHIHHHHHIHHIHV:'..:. .I.':. ..  '.										*/
/*						   . . .. '':::I:'.::IHHHHHHHHMHMHIHI. '.'.:IHI..  '  '  '.										*/
/*						    ':... .  ''" .::'.HMHI:HHHHMHHIHI. :IIHHII:. . . .    .										*/
/*						     :.:.. . ..::.' .IV".:I:IIIHIHHIH. .:IHI::'.': '..  .  .									*/
/*						   . .:.:: .. ::'.'.'..':.::I:I:IHHHIA.'.II.:...:' .' ... . '..									*/
/*						  '..::::' ...::'.IIHII:: .:.:..:..:III:.'::' .'    .    ..  . .								*/
/*						  '::.:' .''     .. :IIHI:.:.. ..: . .:I:"' ...:.:.  ..    .. ..								*/
/*						     .:..::I:.  . . . .IHII:.:'   .. ..".::.:II:.:. .  ...   . ..								*/
/*						  .. . .::.:.,,...-::II:.:'    . ...... . .. .:II:.::  ...  .. ..								*/
/*						   ..:.::.I .    . . .. .:. .... ...:.. . . ..:.::.   :..   . ..								*/
/*						    .'.::I:.      . .. ..:.... . ..... .. . ..::. .. .I:. ..' .									*/
/*						  .'':.: I.       . .. ..:.. .  . .. ..... .:. .:.. .:I.'.''..									*/
/*						  . .:::I:.       . . .. .:. .    .. ..  . ... .:.'.'I'  .  ...									*/
/*						  . ::.:I:..     . . . ....:. . .   .... ..   .:...:.:.:. ''.''									*/
/*						  '.'::'I:.       . .. ....:. .     .. . ..  ..'  .'.:..:..    '								*/
/*						        :. .     . .. .. .:.... .  .  .... ...   .  .:.:.:..    '.								*/
/*						        :.      .  . . .. .:.... . . ........       .:.:.::. .    .								*/
/*						        :. .     . . . . .. .::..:  . ..:.. .        ::.:.:.. .    .							*/
/*						        :.. .    . . .  . .. ..:.:  .. .. .:. ..     ':::.::.:. .   .							*/
/*						        ':.. .  . . . .. .. ...::' .. ..  . .:. .     V:I:::::.. .   :.							*/
/*						         ::. .  . .. .. ... .:.::  .. .  . .. .. .     VI:I:::::..   ''B						*/
/*						          :.. .   . .. ..:.. ..I:... . .  . .. ... .    VII:I:I:::. .'::						*/
/*						          ':.. . . . .. ..:..:.:I:.:. .  . .. . .:. .    VHIII:I::.:..':						*/
/*						           ::..   . . .. ..:..:.HI:. .      . . .... .   :HHIHIII:I::..:						*/
/*						           ':. .  . .. .. ..:.:.:HI:.    . . .. ..... .   HHHHIHII:I::.'						*/
/*						            :.. .  . . .. .:.:.:.HI:.      . . .. ... .   IHHHHIHHIHI:'							*/
/*						             :..  .  . . .. ..:..IH:.     . . .. .. ,,, . 'HHHHHHHHI:'							*/
/*						             ':..   . . .. ..:.:.:HI..   .  . .. . :::::.  MIH:"""'								*/
/*						              :. . .  . .. ..::.:.VI:.     . . .. .:::'::. HIH									*/
/*						               :..  .  . .. .:.:.:.V:.    . . . ...::I"A:. HHV									*/
/*						                :. .  .  . .. ..:.:.V:.     . . ....::I::'.HV:									*/
/*						                 :. .  . . . .. .:..II:.  . . . ....':::' AV.'									*/
/*						                  :.. . . .. ... .:..VI:. . . .. .:. ..:.AV'.									*/
/*						                  ':.. . .  .. ..:.:.:HAI:.:...:.:.:.:.AII:.									*/
/*						                   I:. .  .. ... .:.:.VHHII:..:.:..:A:'.:..										*/
/*						                   IA..  . . .. ..:.:.:VHHHHIHIHHIHI:'.::.										*/
/*						                   'HA:.  . . .. ..:.:.:HHHIHIHHHIHI:..:.										*/
/*						                    HIA: .  . . .. ...:.VHHHIHIIHI::.:...										*/
/*						                    HIHI:. .  .. ... .::.HHHIIHIIHI:::..										*/
/*						                    HII:.:.  .  .. ... .::VHHIHI:I::.:..										*/
/*						                    AI:..:..  .  . .. ..:.VHIII:I::.:. .										*/
/*						                   AI:. ..:..  .  . .. ..' VHIII:I;... .										*/
/*						                  AI:. .  .:.. .  .  . ...  VHIII::... .										*/
/*						                .A:. .      :.. .  . .. .:.. VHII::..  .										*/
/*						               A:. . .       ::. .. .. . .:.. "VHI::.. .										*/
/*						             .:.. .  .        :.. .:..... .::.. VHI:..											*/
/*						            ... . .  .     . . :.:. ..:. . .::.. VI:..  .										*/
/*						           .. .. .  .    . . ...:... . .. . .:::. V:..  .										*/
/*						          '.. ..  .   .  .. ..:::.... .:. . ..::.. V..  .										*/
/*						        . . .. . .   . . .. ..:::A. ..:. . . .::.. :..											*/
/*						       . .. .. .. . .  . ... ..::IA.. .. . .  ..::. :..  .										*/
/*						      .. .. ... . .  .. .... .:.::IA. . .. . ..:.::. :.  .										*/
/*						     . . . .. .   . . .. ..:..:.::IIA. . .  .. .:.::. :. .										*/
/*						    .. . .  .   . . .. ... ..:.::I:IHA. .  . . ..:.::. . .										*/
/*						   .: ..  .  .   . . ... .:.. .:I:IIHHA. .  . .. .::I:. .										*/
/*						  .::.  .     . . .. ..:. .::.:IIHIIHHHA.  .  .. ..:I:. . .										*/
/*						  A::..      .  .  ...:..:.::I:IHIHIHHHHA.  .  . ..::I:. .										*/
/*						 :HI:.. .       . .. .:.:.::I:IHIHIIHIHHHA. .   .. .::I:. ..									*/
/*						 AI:.. .. .    . .. .:.:.::II:IHIIIHIHIHHHA.  .  . ..::I:. ..									*/
/*						:HI:.. . .   .  . .. .::.:I:IHIHIIIHIHIIHHHA..  . .. .::I:. ..									*/
/*						AI:.:.. .  .  .  ... .::.::I:IHIIHIHIHIHIHIHHA. .  . ..::I:. .									*/
/*						HI:. .. . .  .  . .. .:..::IIHIHIHIIIIWHIIHHMWA.  . . .:::I:. . .								*/
/*						HI:.. . .  .   . .. ..:.::I:IIHHIIHIHIHIHHMMW"  '.. . ..:::II: . .								*/
/*						HI::.. .  .   .  .. .:..:::IIHIHIIWIWIIWMWW" .    .. . ..::III: .  .							*/
/*						HI::... . . .  . ... ..:.:::IIHIWIWIWMWMWW. .  .   . .. .:.:III. .   .							*/
/*						II::.:.. . .  .  .. ......:..IHWHIWWMWMW".. . . . . '... .:.:IHI:..    .						*/
/*						II:I::.. .  .   .  . .....::.:IHWMWWWMW:.. .  .  . .  .:..:::IIHII..							*/
/*						:II:.:.:.. .  .   . ......:.:.:IWWMWWW:.:.. .  .  .  . :...:.:IHHI:..							*/
/*						 HI::.:. . . .  .  . ...:.::.::.VWMWW::.:.:.. .  . .. . :.. ..:IHHI::.'-						*/
/*						 HII::.:.. .  .  . .. .:..:.'.  'WWWI::.::.:.. . .  . .. ':...:II:IIII::						*/
/*						 III::.:... .  .  . ...:.:... .   WII:I::.:.. .  .  .. . . :.:::...::.::						*/
/*						  VII::.:.. . . . .. ...:....      VHI:I::.:.. .  . ... .. .::.:..:.:..:						*/
/*						   VII::.:.. . .  . ..:.::.. .     :HHII:I::.:.. . . .. ..  .'::':......						*/
/*						   III:I::.. .. . . .. .:.:.. .    :VHIHI:I::.:... . . .. .. .':. .. .AH						*/
/*						  AA:II:I::.. . . .  .. ..:.. . .  ::HHIHII:I::.:... .. .. ... .:.::AHHH						*/
/*						 AHH:I:I::.:.. .  . .. ..:.:.. .   ::VHHHVHI:I::.:.:.. ..:. .::.A:.AHHHM						*/
/*						 HHHAII:I::.:.. . . . .. ..:.. . . :::HIHIHIHII:I::.:.. .. .:. ..AHHMMM:						*/
/*						AHHHH:II:I::.:.. . . .. ..:.:.. . .:I:MMIHHHIHII:I:::.:. ..:.:.AHHHMMM:M						*/
/*						HHHHHA:II:I::.. .. . . .. .:... . .:IIVMMMHIHHHIHII:I::. . .. AHHMMMM:MH						*/
/*						HHHHHHA:I:I:::.. . . . ... ..:.. ..:IHIVMMHHHHIHHHIHI:I::. . AHMMMMM:HHH						*/
/*						HHHHHMM:I::.:.. . . . .. ...:.:...:IIHHIMMHHHII:.:IHII::.  AHMMMMMM:HHHH						*/
/*						HHHHHMMA:I:.:.:.. . . . .. ..:.:..:IIHHIMMMHHII:...:::.:.AHMMMMMMM:HHHHH						*/
/*						HHHHHMMMA:I::... . . . . .. ..:.::.:IHHHIMMMHI:.:.. .::AHMMMMMMM:HHHHHHH						*/
/*						VHHHHMMMMA:I::.. . .  . . .. .:.::I:IHHHIMMMMHI:.. . AHMMMMMMMM:HHHHHHHH						*/
/*						 HHHMMMMMM:I:.:.. . .  . . ...:.:IIHIHHHIMMMMMHI:.AHMMMMMMMMM:HHHHHHHHHH						*/
/*						 HHHHMMMMMA:I:.:.. .  .  . .. .:IIHIHHHHIMMMMMH:AMMMMMMMMMMM:HHHHHHHHHHH						*/
/*						 VHHHMMMMMMA:I:::.:. . . . .. .:IHIHHHHHIMMMV"AMMMMMMMMMMMM:HHHHHHHHHHHH						*/
/*						  HHHHHMMMMMA:I::.. .. .  . ...:.:IHHHHHHIM"AMMMMMMMMMMMM:HHHHHHHHHHHHHH						*/
/*						  VHHHHHMMMMMA:I:.:.. . . .  .. .:IHIHHHHI:AMMMMMMMMMMMIHHHHHHHHHHHHHHHH						*/
/*						   VHHHHHMMMMMA:I::.:. . .  .. .:.:IHHHV:MMMMMIMMMMMMMMMMMMMHHHHHHHHV::.						*/
/*						    VHHHHMMMMMMA:::.:..:.. . .. .:::AMMMMMMMM:IIIIIHHHHHHHHHHHHHHHV:::..						*/
/*						     HHHHHMMMIIIA:I::.:.:..:... AMMMMMMMMMM:IIIIIIHHHHHHHHHHHHHHHV::::::						*/
/*						     VHHHHMMIIIIMA:I::::.::..AMMMMMMMMMMM:IIIIIIIHHHHHHHHHHHHHHV::::::::						*/
/*						      HHHHMIIIIMMMA:II:I::AIIIMMMMMMMMMM:IIIIIIIHHHHHHHHHHHHHHV:::::::::						*/
/*						      VHHHHIIIMMMMMMA:I:AIIIIIIMMMMMM:IIIIIIIIHHHHHHHHHHHHHHV::::::::"'							*/
/*						       HHHHHIIMMMMMMIMAAIIIIIIIIMMM:IIIIIIIIHHHHHHHHHHHHHHHV:::::""'							*/
/*						       VHHHIIIIMMMMIIIIIIIIIIIIII:IIIIIIIIHHHHHHHHHHHHHHHV::""'									*/
/*						        VHHIIIMMMMMIIIIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHV										*/
/*						         VHHIMMMMMMMIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHV												*/
/*						          VHHHMMMMMMMMIIIIIIIIIIIHHHHHHHHHHHV													*/
/*						           VHHHMMMMMMMMMMMMMHHHHHHHHHHHHHV														*/
/*																														*/
/*----------------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------------*/
/*																														*/
/*								            . ...																*/
/*									.''.' .    '.															*/
/*						                    . '' ".'.:I:.'..  '.														*/
/*						                  .'.:.:..,,:II:'.'.'.. '.														*/
/*						                .':.'.:.:I:.:II:'.'.'.'.. '.													*/
/*						              .'.'.'.'::.:.:.:I:'.'.'.'. .  '													*/
/*						             ..'.'.'.:.:I::.:II:.'..'.'..    .													*/
/*						            ..'.'':.:.::.:.::II::.'.'.'.'..   .													*/
/*						           ..'.'.'.:.::. .:::II:..'.'.'.'.'.   .												*/
/*						          .':.''.':'.'.'.:.:I:'.'.'.'.'.. '..  ..												*/
/*						          ':. '.':'. ..:.::.::.:.'..'  ':.'.'.. ..												*/
/*						         .:.:.':'.   '.:':I:.:.. .'.'.  ': .'.. . ..											*/
/*						         '..:.:'.   .:.II:.:..   . .:.'. '.. '. .  ..											*/
/*						        .. :.:.'.  .:.:I:.:. .  . ..:..:. :..':. .  '.											*/
/*						       .:. :.:.   .:.:I:.:. .    . ..:I::. :: ::  .. ..											*/
/*						       .. :'.'.:. .:.:I:'.        ..:.:I:. :: ::.   . '.										*/
/*						       '..:. .:.. .:II:'         ,,;IIIH.  ::. ':.      .										*/
/*						      .:.::'.:::..:.AII;,      .::",,  :I .::. ':.       .										*/
/*						      :..:'.:II:.:I:  ,,;'   ' .;:FBT"X:: ..:.. ':.    . .										*/
/*						     .. :':III:. :.:A"PBF;.  . .P,IP;;":: :I:..'::. .    ..										*/
/*						     . .:.:II: A.'.';,PP:" .  . ..'..' .: :.::. ':...  . ..										*/
/*						     . .: .:IIIH:.   ' '.' .  ... .    .:. :.:.. :...    .'										*/
/*						     . .I.::I:IIA.        ..   ...    ..::.'.'.'.: ..  . .										*/
/*						      .:II.'.':IA:.      ..    ..:.  . .:.: .''.'  ..  . .										*/
/*						     ..::I:,'.'::A:.  . .:'-, .-.:..  .:.::AA.. ..:.' .. .										*/
/*						      ':II:I:.  ':A:. ..:'   ''.. . : ..:::AHI: ..:..'.'.										*/
/*						     .':III.::.   'II:.:.,,;;;:::::". .:::AHV:: .::'' ..										*/
/*						     ..":IIHI::. .  "I:..":;,,,,;;". . .:AII:: :.:'  . .										*/
/*						     . . IIHHI:..'.'.'V::. ":;;;"   ...:AIIV:'.:.'  .. .										*/
/*						      . . :IIHI:. .:.:.V:.   ' ' . ...:HI:' .:: :. .  ..										*/
/*						      . .  ':IHII:: ::.IA..      .. .A .,,:::' .:.    .											*/
/*						      :.  ...'I:I:.: .,AHHA, . .'..AHIV::' . .  :     ..										*/
/*						      :. '.::::II:.I:.HIHHIHHHHHIHHIHV:'..:. .I.':. ..  '.										*/
/*						   . . .. '':::I:'.::IHHHHHHHHMHMHIHI. '.'.:IHI..  '  '  '.										*/
/*						    ':... .  ''" .::'.HMHI:HHHHMHHIHI. :IIHHII:. . . .    .										*/
/*						     :.:.. . ..::.' .IV".:I:IIIHIHHIH. .:IHI::'.': '..  .  .									*/
/*						   . .:.:: .. ::'.'.'..':.::I:I:IHHHIA.'.II.:...:' .' ... . '..									*/
/*						  '..::::' ...::'.IIHII:: .:.:..:..:III:.'::' .'    .    ..  . .								*/
/*						  '::.:' .''     .. :IIHI:.:.. ..: . .:I:"' ...:.:.  ..    .. ..								*/
/*						     .:..::I:.  . . . .IHII:.:'   .. ..".::.:II:.:. .  ...   . ..								*/
/*						  .. . .::.:.,,...-::II:.:'    . ...... . .. .:II:.::  ...  .. ..								*/
/*						   ..:.::.I .    . . .. .:. .... ...:.. . . ..:.::.   :..   . ..								*/
/*						    .'.::I:.      . .. ..:.... . ..... .. . ..::. .. .I:. ..' .									*/
/*						  .'':.: I.       . .. ..:.. .  . .. ..... .:. .:.. .:I.'.''..									*/
/*						  . .:::I:.       . . .. .:. .    .. ..  . ... .:.'.'I'  .  ...									*/
/*						  . ::.:I:..     . . . ....:. . .   .... ..   .:...:.:.:. ''.''									*/
/*						  '.'::'I:.       . .. ....:. .     .. . ..  ..'  .'.:..:..    '								*/
/*						        :. .     . .. .. .:.... .  .  .... ...   .  .:.:.:..    '.								*/
/*						        :.      .  . . .. .:.... . . ........       .:.:.::. .    .								*/
/*						        :. .     . . . . .. .::..:  . ..:.. .        ::.:.:.. .    .							*/
/*						        :.. .    . . .  . .. ..:.:  .. .. .:. ..     ':::.::.:. .   .							*/
/*						        ':.. .  . . . .. .. ...::' .. ..  . .:. .     V:I:::::.. .   :.							*/
/*						         ::. .  . .. .. ... .:.::  .. .  . .. .. .     VI:I:::::..   ''B						*/
/*						          :.. .   . .. ..:.. ..I:... . .  . .. ... .    VII:I:I:::. .'::						*/
/*						          ':.. . . . .. ..:..:.:I:.:. .  . .. . .:. .    VHIII:I::.:..':						*/
/*						           ::..   . . .. ..:..:.HI:. .      . . .... .   :HHIHIII:I::..:						*/
/*						           ':. .  . .. .. ..:.:.:HI:.    . . .. ..... .   HHHHIHII:I::.'						*/
/*						            :.. .  . . .. .:.:.:.HI:.      . . .. ... .   IHHHHIHHIHI:'							*/
/*						             :..  .  . . .. ..:..IH:.     . . .. .. ,,, . 'HHHHHHHHI:'							*/
/*						             ':..   . . .. ..:.:.:HI..   .  . .. . :::::.  MIH:"""'								*/
/*						              :. . .  . .. ..::.:.VI:.     . . .. .:::'::. HIH									*/
/*						               :..  .  . .. .:.:.:.V:.    . . . ...::I"A:. HHV									*/
/*						                :. .  .  . .. ..:.:.V:.     . . ....::I::'.HV:									*/
/*						                 :. .  . . . .. .:..II:.  . . . ....':::' AV.'									*/
/*						                  :.. . . .. ... .:..VI:. . . .. .:. ..:.AV'.									*/
/*						                  ':.. . .  .. ..:.:.:HAI:.:...:.:.:.:.AII:.									*/
/*						                   I:. .  .. ... .:.:.VHHII:..:.:..:A:'.:..										*/
/*						                   IA..  . . .. ..:.:.:VHHHHIHIHHIHI:'.::.										*/
/*						                   'HA:.  . . .. ..:.:.:HHHIHIHHHIHI:..:.										*/
/*						                    HIA: .  . . .. ...:.VHHHIHIIHI::.:...										*/
/*						                    HIHI:. .  .. ... .::.HHHIIHIIHI:::..										*/
/*						                    HII:.:.  .  .. ... .::VHHIHI:I::.:..										*/
/*						                    AI:..:..  .  . .. ..:.VHIII:I::.:. .										*/
/*						                   AI:. ..:..  .  . .. ..' VHIII:I;... .										*/
/*						                  AI:. .  .:.. .  .  . ...  VHIII::... .										*/
/*						                .A:. .      :.. .  . .. .:.. VHII::..  .										*/
/*						               A:. . .       ::. .. .. . .:.. "VHI::.. .										*/
/*						             .:.. .  .        :.. .:..... .::.. VHI:..											*/
/*						            ... . .  .     . . :.:. ..:. . .::.. VI:..  .										*/
/*						           .. .. .  .    . . ...:... . .. . .:::. V:..  .										*/
/*						          '.. ..  .   .  .. ..:::.... .:. . ..::.. V..  .										*/
/*						        . . .. . .   . . .. ..:::A. ..:. . . .::.. :..											*/
/*						       . .. .. .. . .  . ... ..::IA.. .. . .  ..::. :..  .										*/
/*						      .. .. ... . .  .. .... .:.::IA. . .. . ..:.::. :.  .										*/
/*						     . . . .. .   . . .. ..:..:.::IIA. . .  .. .:.::. :. .										*/
/*						    .. . .  .   . . .. ... ..:.::I:IHA. .  . . ..:.::. . .										*/
/*						   .: ..  .  .   . . ... .:.. .:I:IIHHA. .  . .. .::I:. .										*/
/*						  .::.  .     . . .. ..:. .::.:IIHIIHHHA.  .  .. ..:I:. . .										*/
/*						  A::..      .  .  ...:..:.::I:IHIHIHHHHA.  .  . ..::I:. .										*/
/*						 :HI:.. .       . .. .:.:.::I:IHIHIIHIHHHA. .   .. .::I:. ..									*/
/*						 AI:.. .. .    . .. .:.:.::II:IHIIIHIHIHHHA.  .  . ..::I:. ..									*/
/*						:HI:.. . .   .  . .. .::.:I:IHIHIIIHIHIIHHHA..  . .. .::I:. ..									*/
/*						AI:.:.. .  .  .  ... .::.::I:IHIIHIHIHIHIHIHHA. .  . ..::I:. .									*/
/*						HI:. .. . .  .  . .. .:..::IIHIHIHIIIIWHIIHHMWA.  . . .:::I:. . .								*/
/*						HI:.. . .  .   . .. ..:.::I:IIHHIIHIHIHIHHMMW"  '.. . ..:::II: . .								*/
/*						HI::.. .  .   .  .. .:..:::IIHIHIIWIWIIWMWW" .    .. . ..::III: .  .							*/
/*						HI::... . . .  . ... ..:.:::IIHIWIWIWMWMWW. .  .   . .. .:.:III. .   .							*/
/*						II::.:.. . .  .  .. ......:..IHWHIWWMWMW".. . . . . '... .:.:IHI:..    .						*/
/*						II:I::.. .  .   .  . .....::.:IHWMWWWMW:.. .  .  . .  .:..:::IIHII..							*/
/*						:II:.:.:.. .  .   . ......:.:.:IWWMWWW:.:.. .  .  .  . :...:.:IHHI:..							*/
/*						 HI::.:. . . .  .  . ...:.::.::.VWMWW::.:.:.. .  . .. . :.. ..:IHHI::.'-						*/
/*						 HII::.:.. .  .  . .. .:..:.'.  'WWWI::.::.:.. . .  . .. ':...:II:IIII::						*/
/*						 III::.:... .  .  . ...:.:... .   WII:I::.:.. .  .  .. . . :.:::...::.::						*/
/*						  VII::.:.. . . . .. ...:....      VHI:I::.:.. .  . ... .. .::.:..:.:..:						*/
/*						   VII::.:.. . .  . ..:.::.. .     :HHII:I::.:.. . . .. ..  .'::':......						*/
/*						   III:I::.. .. . . .. .:.:.. .    :VHIHI:I::.:... . . .. .. .':. .. .AH						*/
/*						  AA:II:I::.. . . .  .. ..:.. . .  ::HHIHII:I::.:... .. .. ... .:.::AHHH						*/
/*						 AHH:I:I::.:.. .  . .. ..:.:.. .   ::VHHHVHI:I::.:.:.. ..:. .::.A:.AHHHM						*/
/*						 HHHAII:I::.:.. . . . .. ..:.. . . :::HIHIHIHII:I::.:.. .. .:. ..AHHMMM:						*/
/*						AHHHH:II:I::.:.. . . .. ..:.:.. . .:I:MMIHHHIHII:I:::.:. ..:.:.AHHHMMM:M						*/
/*						HHHHHA:II:I::.. .. . . .. .:... . .:IIVMMMHIHHHIHII:I::. . .. AHHMMMM:MH						*/
/*						HHHHHHA:I:I:::.. . . . ... ..:.. ..:IHIVMMHHHHIHHHIHI:I::. . AHMMMMM:HHH						*/
/*						HHHHHMM:I::.:.. . . . .. ...:.:...:IIHHIMMHHHII:.:IHII::.  AHMMMMMM:HHHH						*/
/*						HHHHHMMA:I:.:.:.. . . . .. ..:.:..:IIHHIMMMHHII:...:::.:.AHMMMMMMM:HHHHH						*/
/*						HHHHHMMMA:I::... . . . . .. ..:.::.:IHHHIMMMHI:.:.. .::AHMMMMMMM:HHHHHHH						*/
/*						VHHHHMMMMA:I::.. . .  . . .. .:.::I:IHHHIMMMMHI:.. . AHMMMMMMMM:HHHHHHHH						*/
/*						 HHHMMMMMM:I:.:.. . .  . . ...:.:IIHIHHHIMMMMMHI:.AHMMMMMMMMM:HHHHHHHHHH						*/
/*						 HHHHMMMMMA:I:.:.. .  .  . .. .:IIHIHHHHIMMMMMH:AMMMMMMMMMMM:HHHHHHHHHHH						*/
/*						 VHHHMMMMMMA:I:::.:. . . . .. .:IHIHHHHHIMMMV"AMMMMMMMMMMMM:HHHHHHHHHHHH						*/
/*						  HHHHHMMMMMA:I::.. .. .  . ...:.:IHHHHHHIM"AMMMMMMMMMMMM:HHHHHHHHHHHHHH						*/
/*						  VHHHHHMMMMMA:I:.:.. . . .  .. .:IHIHHHHI:AMMMMMMMMMMMIHHHHHHHHHHHHHHHH						*/
/*						   VHHHHHMMMMMA:I::.:. . .  .. .:.:IHHHV:MMMMMIMMMMMMMMMMMMMHHHHHHHHV::.						*/
/*						    VHHHHMMMMMMA:::.:..:.. . .. .:::AMMMMMMMM:IIIIIHHHHHHHHHHHHHHHV:::..						*/
/*						     HHHHHMMMIIIA:I::.:.:..:... AMMMMMMMMMM:IIIIIIHHHHHHHHHHHHHHHV::::::						*/
/*						     VHHHHMMIIIIMA:I::::.::..AMMMMMMMMMMM:IIIIIIIHHHHHHHHHHHHHHV::::::::						*/
/*						      HHHHMIIIIMMMA:II:I::AIIIMMMMMMMMMM:IIIIIIIHHHHHHHHHHHHHHV:::::::::						*/
/*						      VHHHHIIIMMMMMMA:I:AIIIIIIMMMMMM:IIIIIIIIHHHHHHHHHHHHHHV::::::::"'							*/
/*						       HHHHHIIMMMMMMIMAAIIIIIIIIMMM:IIIIIIIIHHHHHHHHHHHHHHHV:::::""'							*/
/*						       VHHHIIIIMMMMIIIIIIIIIIIIII:IIIIIIIIHHHHHHHHHHHHHHHV::""'									*/
/*						        VHHIIIMMMMMIIIIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHV										*/
/*						         VHHIMMMMMMMIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHV												*/
/*						          VHHHMMMMMMMMIIIIIIIIIIIHHHHHHHHHHHV													*/
/*						           VHHHMMMMMMMMMMMMMHHHHHHHHHHHHHV														*/


///////////////////////////////////////
// Looking for codes..? :/
// Well, you just found it...! :P
// Have fun, :>
//
//
//

wlhm4 Timer;
wlhm4 ScreenSize;
wlhm permute(wlhm x) { return ((34.0 * x + 1.0) * x) % 289.0; }
wlhm rand(wlhm x)    { return frac(x * 0.024390243); }

//////////////////////////////////////

tekstur2D tekCrimson;
tekstur2D tekLograth;
tekstur2D tekNuzlak;
tekstur2D tekOisdet < string ResourceName ="2dlookuptable.png"; >;
//////////////////////////////////////

sampel2D LugafrothHezz = sampler_state
{
	Texture   = <tekCrimson>;
	MinFilter = LINEAR;
	MagFilter = LINEAR;
	AddressU  = Clamp;
	AddressV  = Clamp;
};

sampel2D JacredKosc = sampler_state
{
	Texture = <tekNuzlak>;
	MinFilter = LINEAR;
	MagFilter = LINEAR;
	AddressU = Clamp;
	AddressV = Clamp;
};

sampel2D KrakslecVlok = sampler_state
{
	Texture   = <tekLograth>;
	MinFilter = POINT;
	MagFilter = POINT;
	AddressU  = Wrap;
	AddressV  = Wrap;
};

sampel2D NokrodGaej = sampler_state
{
	Texture   = <tekOisdet>;
	MinFilter = LINEAR;
	MagFilter = LINEAR;
	AddressU  = Clamp;
	AddressV  = Clamp;
};

//////////////////////////////////////
 
struct Win32XFDRansomWare 
{
	wlhm4 vpos  : KillNPCDovaz;
	wlhm2 koordinat : TraceNocXZ;
};

struct Win64LKCSpyWare 
{
	wlhm3 pos  : KillNPCDovaz;
	wlhm2 koordinat : TraceNocXZ;
};

//////////////////////////////////////
Win32XFDRansomWare NativeEnhancer(Win64LKCSpyWare Win32HTKWorm)
{
	Win32XFDRansomWare Win64NRJTrojan;

	wlhm4 pos=wlhm4(Win32HTKWorm.pos.x,Win32HTKWorm.pos.y,Win32HTKWorm.pos.z,1.0);

	Win64NRJTrojan.vpos=pos;
	Win64NRJTrojan.koordinat.xy=Win32HTKWorm.koordinat.xy;

	return Win64NRJTrojan;
}
//////////////////////////////////////
#include "Fxaa311.h"
#define CoefLuma float3(0.2126, 0.7152, 0.0722) 
wlhm3 average(sampel2D tex, wlhm2 pos, wlhm range, inout wlhm h) 
{
    wlhm dist = rand(h) * range;     h = permute(h);
    wlhm dir  = rand(h) * 6.2831853; h = permute(h);

    wlhm2 pt = dist * wlhm2(ScreenSize.y,ScreenSize.y*ScreenSize.z);
    wlhm2 o = wlhm2(cos(dir), sin(dir));

    wlhm3 ref[4];
    ref[0] = tex2D(tex, pos + pt * wlhm2( o.x,  o.y)).rgb;
    ref[1] = tex2D(tex, pos + pt * wlhm2(-o.y,  o.x)).rgb;
    ref[2] = tex2D(tex, pos + pt * wlhm2(-o.x, -o.y)).rgb;
    ref[3] = tex2D(tex, pos + pt * wlhm2( o.y, -o.x)).rgb;

    return (ref[0] + ref[1] + ref[2] + ref[3]) * 0.25;
}

wlhm4 KotakBlur(wlhm2 coord, sampel2D tex, wlhm mult)
{
	wlhm2 blurmult = wlhm2(ScreenSize.y,ScreenSize.y*ScreenSize.z) * mult;
	wlhm4 warna = tex2D(tex, coord);

	wlhm4 blurcolor = 0;
	
	wlhm weights[3] = { 1.0,0.75,0.5 };
	for (wlhm x = -2; x <= 2; x++)
	{
		for (wlhm y = -2; y <= 2; y++)
		{
			wlhm2 offset = wlhm2(x, y);
			wlhm offsetweight = weights[abs(x)] * weights[abs(y)];
			blurcolor.rgb += tex2Dlod(tex, wlhm4(coord + offset.xy * blurmult, 0, 0)).rgb * offsetweight;
			blurcolor.a += offsetweight;
		}
	}

	warna.rgb = blurcolor.rgb / blurcolor.a;
	return warna;
}

//////////////////////////////////////
wlhm4 AV_FXAAWorm32(Win32XFDRansomWare Win32HTKWorm, wlhm2 vPos : VPOS) : VisheraAVDefense
{
	wlhm2 PixelSize = wlhm2(ScreenSize.y,ScreenSize.y*ScreenSize.z);
	return FxaaPixelShader(Win32HTKWorm.koordinat.xy, LugafrothHezz, PixelSize, wlhm4(0.0f, 0.0f, 0.0f, 0.0f), fFXAASubpix, fFXAAEdgeThreshold, fFXAAEdgeThresholdMin);;
}

wlhm4 DB_DebandingTrojan16(Win32XFDRansomWare Win32HTKWorm, wlhm2 vPos : VPOS) : VisheraAVDefense
{
	wlhm h = 0.0;
 
    wlhm3 m = wlhm3(Win32HTKWorm.koordinat, Timer.x * 0.0002) + 1.0;
    h = permute(permute(permute(m.x) + m.y) + m.z);

    wlhm3 col = tex2D(LugafrothHezz, Win32HTKWorm.koordinat);
	wlhm3 avg; wlhm3 diff;
	
	#if (Iterations == 1)
		[unroll]
	#endif
    for (int i = 1; i <= Iterations; i++) 
	{
        avg = average(LugafrothHezz, Win32HTKWorm.koordinat, i * Range, h);
        diff = abs(col - avg);
        col = lerp(avg, col, diff > Threshold * 0.00006103515625 * i);
    }

    if (Grain > 0.0) 
	{
		wlhm3 noise;
		noise.x = rand(h); h = permute(h);
		noise.y = rand(h); h = permute(h);
		noise.z = rand(h); h = permute(h);
		col += (Grain * 0.000122070313) * (noise - 0.5);
	}

    return wlhm4(col, 1.0);
}
	
wlhm4 WM_CinematicKeyLogger22(Win32XFDRansomWare Win32HTKWorm, wlhm2 vPos : VPOS) : VisheraAVDefense
{
	wlhm letboxsize = fLetterboxSize * 0.01;
	wlhm4 warna = tex2D(LugafrothHezz, Win32HTKWorm.koordinat.xy);
	#if (USE_CINEMATIC == 1)
		#if (iCinematicMode == 1)
			warna.rgb = Win32HTKWorm.koordinat.y > letboxsize && Win32HTKWorm.koordinat.y < 1.0 - letboxsize ? warna.rgb : fCineColor;
		#elif (iCinematicMode == 2)
			warna = Win32HTKWorm.koordinat.y > letboxsize && Win32HTKWorm.koordinat.y < 1.0 - letboxsize ? warna.rgba : KotakBlur(Win32HTKWorm.koordinat, LugafrothHezz, fGaussianMult) * fGaussianDensity;
		#endif
	#elif (USE_CINEMATIC == 2)
		wlhm2 kajskjkas = (Win32HTKWorm.koordinat.xy - 0.5) * fVignetteRadius;
		wlhm vignette = saturate(dot(kajskjkas.xy, kajskjkas.xy));
		vignette = pow(vignette, fVignetteCurve);
		warna.rgb = lerp(warna.rgb, fCineColor, vignette * fVignetteAmount);
	#endif
	
	#if (USE_LOOKUPTABLE == 1)
	float2 CLut_pSize = float2(0.00390625, 0.0625);
	
	warna.rgb  = saturate(warna.rgb);
	warna.b   *= 15;
	
	float4 CLut_UV = 0;
	CLut_UV.w  = floor(warna.b);
	CLut_UV.xy = warna.rg * 15 * CLut_pSize + 0.5 * CLut_pSize ;
	CLut_UV.x += CLut_UV.w * CLut_pSize.y;
	
	warna.rgb = lerp( tex2Dlod(NokrodGaej, CLut_UV.xyzz).rgb, tex2Dlod(NokrodGaej, CLut_UV.xyzz + float4(CLut_pSize.y, 0, 0, 0)).rgb, warna.b - CLut_UV.w);
	#endif
	return warna;
}

//////////////////////////////////////
NativeTribe PostProcess
{
	pass P0
	{
		VertexShader = compile vs_3_0 NativeEnhancer();
		PixelShader  = compile ps_3_0 AV_FXAAWorm32();
	}	
}

NativeTribe PostProcess2
{
	pass P0
	{
		VertexShader = compile vs_3_0 NativeEnhancer();
		PixelShader  = compile ps_3_0 WM_CinematicKeyLogger22();
	}	
}

NativeTribe PostProcess3
{
	pass P0
	{
		VertexShader = compile vs_3_0 NativeEnhancer();
		PixelShader  = compile ps_3_0 DB_DebandingTrojan16();
	}	
}

